Amazon S3
https://gyazo.com/5bb69e562f3c29081b53138ac9a94573
AWS serviceの一つ。S3ともいう
正式名称は
Amazon Simple Storage Service
概要
AWSでシステム構築するときにはほぼ間違いなく使うService
S3 bucketの中にあらゆる形式のfile (S3では Objectと呼ぶ) を格納することが可能
クラウド上のオブジェクトストレージと称される
特徴
容量無制限(1ファイル最大5TBまで)
99.9999999999%の堅牢性
1GB/約2~4円という安価さ。
データ容量に依存しないスケーラブルな性能。
つまり「開発・software用のGoogle drive.iconGoogle Drive」
機能も似ている
一つ一つのobjectに「URL」が存在する
URLを共有すれば任意の人にサクッとファイルを共有できる
※ただし、Public Accessを許可している場合
NP内ではNG。Public Accessをblockして「S3 Bucketの中身がInternetに流れる」ことを防ぐ
Google driveじゃできないこともある
暗号化をして「セキュリティ強化」できる
情報漏洩を防ぐため、S3 bucketは必ず「暗号化」する
S3の静的Hosting機能で、簡単にWeb siteを公開できる
現場での実際の利用例
Systemの「利用頻度の低いData」の保存場所
例)log、Datalake
AWSが提供する「Data保存場所」ではもっとも安いため
よくaccessするDataは他で管理する
Dynamo DBやAmazon RDSなど
S3 Bucket を新設するとき
絶対に守るルール
Public Accessをblockして「S3 Bucketの中身がInternetに流れる」ことを防ぐ
情報漏洩を防ぐため、S3 bucketは必ず「暗号化」する
AWS Regionは基本、ap-northeast-1「アジアパシフィック(東京)」
Tips
S3 bucket構成の推奨
S3 bucketを使う時
S3間のData copy中にPage遷移すると途中で止まる
文字Codeを変えてから、S3 bucketにUpload
S3関連の用語
Object
S3 bucketに保存された一つ一つのFileのこと
Fileは例えば.zip、.pdf、.mov、.mp4、.csv、.txt、.parquet……などなど
S3 bucketにいくらでも入れられる
S3 bucket
Objectの保存場所。
保存するには必ず「S3 bucket」が必要
名付けが必要。重要
S3 bucket名は「全てのAWS userが作ったS3 bucketのなかでunique」である必要がある
S3 bucket名はそのままURLに入るため。
例)s3:::/np-datalake
当時「np-datalake」という名前が使われていなかったので作成できた
名前が被らないように、AWS account ID・AWS Region NameをS3 bucket名に入れることが多い
例)s3://aws-athena-query-results-123456789012-us-west-1
特にLog 保管用ではこの名付けが多い
log用のS3 bucketはAWS Service利用時に自動で生成されるため
1 aws accountに100個まで
1 accountなので、accountを増やせば上限も超えられる
基本この対応でいける
S3 bucketは「cross account accsess」がしやすい
ただし、100以上にすることも可能
AWS service quotasで申請可能
S3 bucket policy
S3 bucketにACLを行うための機能
キー
オブジェクト固有の識別子(オブジェクトの名前)。
オブジェクトにはウェブサービスエンドポイント、バケット名、キー、(およびオプションでバージョン)を組み合わせることで一意にアクセスすることができる。
アクセスコントロールリスト(ACL)
バケットやオブジェクトのアクセス管理
参考文献
AWS再入門 Amazon S3編 | Developers.IO
AWS Summit 2019 「Security Best Practices on Amazon S3」
Amazon S3やってみた